/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-10-31
 * Time: 0:36
 */
public class Demo {

    public boolean isUnique(String astr) {
        //解法二：利用位图思想
        int len = astr.length();
        //利用鸽巢原理优化
        if(len > 26) return false;

        int bitMap = 0;
        for(int i = 0; i < astr.length(); i++){
            //先拿到字符在int的哪一个位置
            int x = astr.charAt(i) - 'a';
            //(判断字符是否在位图中)规定该位置int里为1则字符串出现过，0则没有出现过
            if(((bitMap >> x) & 1) == 1) return false;
            else bitMap |= (1 << x); //该位置在位图中就置为1
        }

        return true;
    }
}
